pour pouvoir tester le script, qui est censé être appelé par un périphérique, dit "appelant", il faut absolument avoir
Ci dessous, un fichier d'émulation, déjà préconfiguré (jouez avec les données pour tests), il suffit de le coller dans le bac à sable et d'y ajouter:
// ==================================GetArg=================================
// configuration du périphérique appelant:
// Les ID ne sont pas traités, mais indiqués quand ils sont utilisés
function getArg($var) {
if ($var=="phoneid") { $return = "";}
if ($var=="cacheduration") { $return = 30;} //VAR2 : durée du cache
if ($var=="langue") { $return = "fr";} // VAR3: langue, fr ou en
if ($var=="eedomus_controller_module_id") { $return = "";}
return $return;
}
// =========================loadVariable, saveVariable======================
// les 3 variables internes prédéfinies pour test.
// les variables jamais définies ont la valeur NULL
$time_last_xml = time() - 60*31; // ici, le cache a plus de 30 minutes
$cached_xml = NULL; // ici le cache n'a pas encore été enregistré (sinon l'y mettre "XML")
$MasterID = NULL; // ici, le MasterID n'a pas encore été enregistré, sinon, mettre "")
function loadVariable($variable_name) {
if ($variable_name=="time_last_xml") { global $time_last_xml; $return = $time_last_xml;}
if ($variable_name=="cached_xml") { global $cached_xml; $return = $cached_xml;}
if ($variable_name=="MasterID") { global $MasterID; $return = $MasterID;}
return $return;
}
// la sauvegarde: les mêmes variables que dans loadVariable
function saveVariable($variable_name, $variable_content) {
if ($variable_name=="cached_xml") { global $cached_xml; $cached_xml = $variable_content;}
if ($variable_name=="time_last_xml") { global $time_last_xml; $time_last_xml = $variable_content;}
if ($variable_name=="MasterID") { global $MasterID; $MasterID = $variable_content;}
}
// ==================================getRooms===============================
// ici on en indique 2, dont la pièce de l'appelant testé, voir ici
function getRooms($ID) {
$return = array([
"room_id" => "",
"room_name" => "Cuisine",
"img" => ""
],[
"room_id" => "",
"room_name" => "Salon",
"img" => ""
]);
return $return;
}
// ==================================getValue===============================
// ici les 2 caractéristiques utilisées de l'appelant : son nom (long=nom+pièce) et sa valeur
// ici, sa valeur commence par "dernier appel": c'est le Master
function getValue($ID,$value_text) {
$tableau = array(
"full_name" => "Thermomètre Salon Salon",
"value" => "dernier appel :<br>Congélateur<br>18:15:36",
"value_type" => "",
"change" => "",
"pending_action" => "",
"unit" => "",
"icon" => ""
);
if ($value_text) {$texte = array(
"value_text" => ""
);
$tableau = array_merge ($tableau, $texte);
}
$return = $tableau;
return $return;
}
// ==================================setValue===============================
// juste un contrôle de ce qui doit être envoyé à un périphérique
function setValue($ID, $value) {
echo "\n=====contrôle débogage======\n"; // retour ligne et double trait pour repérer le contrôle débogage
echo "Contrôle Débogage, ";
echo "le périphérique ID " . $ID;
echo " recevra la valeur: " . $value;
echo "\n====/contrôle débogage======\n"; // retour ligne et double trait pour repérer la fin de contrôle débogage
}
// ==================================httpQuery==============================
function httpQuery($url) {
// coller dans l'espace libre ci dessous le code source de la page HTML appellée
$return=<<<'pageHTML'
pageHTML;
return $return;
}
// ====================== votre script dessous ==========================